package com.vhans.db.service;

import com.vhans.core.domain.CRequest;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.db.model.dto.request.RequestDTO;
import com.vhans.db.model.vo.request.RequestInfoVO;
import com.vhans.db.model.vo.request.RequestVO;

import java.util.List;

/**
 * 好友请求Service接口
 *
 * @author vhans
 * @date 2023-05-21
 */
public interface ICRequestService {

    /**
     * 查询好友请求列表
     *
     * @param condition 条件
     * @return 好友请求集合
     */
    List<RequestVO> selectRequestVOList(ConditionDTO condition);

    /**
     * 获取好友请求编辑信息
     *
     * @param id 好友请求主键
     * @return 好友请求
     */
    RequestInfoVO selectRequestInfoById(Integer id);

    /**
     * 批量删除好友请求
     *
     * @param idList 需要删除的好友请求主键列表
     * @return 影响行
     */
    int deleteRequestByIdIdList(List<Integer> idList);

    /**
     * 查询用户的好友请求列表
     *
     * @return 好友请求
     */
    List<RequestVO> selectUserRequestVOList();

    /**
     * 查询我的请求列表
     *
     * @return 好友请求
     */
    List<RequestVO> selectIRequestVOList();

    /**
     * 改变请求的状态
     */
    void changeFriendRequestStatus(Integer requestId, Integer status);

    /**
     * 新增请求
     *
     * @param cRequest 请求
     * @return 请求响应
     */
    CRequest insertRequest(RequestDTO cRequest);

}
